﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WJP.ComponentModel
{
    /// <summary>
    /// 插件管理器接口
    /// </summary>
    public interface IPluginManager
    {
        IEnumerable<PluginInfo> GetPluginInfos();

        /// <summary>
        /// 添加插件源
        /// </summary>
        /// <param name="pluginSource"></param>
        void AddPluginSource(IPluginSource pluginSource);

        /// <summary>
        /// 设置启动类
        /// </summary>
        /// <param name="app"></param>
        void SetApp(IApp app);

        void Initialize();

        void ShutdownPlugins();
    }
}
